#pragma once
#include <iostream>
#include <ros/ros.h>
#include <string>


class PathPoint
{
public:
    PathPoint();

    ~PathPoint() = default;
    bool has_x() const;
    bool has_y() const;
    void set_x(const double x_);
    void set_y(const double y_);
    void set_z(const double z_);
    void set_s(const double s_);
    void set_theta(const double theta_);
    void set_kappa(const double kappa_);
    void set_dkappa(const double dkappa_);
    void set_v(const double v_);
    void set_a(const double a_);

    // 世界坐标系下的参数
    double x;      // x position
    double y;      // y position
    double z;      // z position
    double theta;  // yaw in rad
    double kappa;  // curvature曲率
    double dkappa; // curvature曲率导数
    double v;      // Tangential velocity
    double a;      // Tangential acceleration
    double s;      // s position along spline

private:
    bool is_x;
    bool is_y;
};